package com.dc.commons.persistence.able;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.MappedSuperclass;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.dc.commons.annotation.DcComment;
import com.dc.commons.json.format.DateTimeFormat;
import com.dc.commons.persistence.embeddable.Member;
import com.dc.commons.status.UseStatus;

/*******************************************************************************<P>
 * 文件名: UseAble.java <br>
 * 版本: 1.0<br>
 * 描述: 使用情况<br>
 * 版权所有: <br>
 * <P>
 * 创建者: 王建栋 <br>
 * 创建日期: 2015年12月22日 下午7:53:10<br>
 * 修改者: <br>
 * 修改日期: <br>
 * 修改说明: <br>
 ******************************************************************************/
@MappedSuperclass
public interface UseAble extends IDAble,DataStatusAble{
	
	  /**
     *  获取 使用状态
     * @return useStatus
     */
    @Column(name="USE_STATUS",length=20)
    @Enumerated(EnumType.STRING)
    @DcComment("使用状态")
    public UseStatus getUseStatus();
    
    /**
     *  设置使用状态
     * @param useStatus
     */
    public void setUseStatus(UseStatus useStatus);
    
    /**
     * 获取 状态操作人
     * @return useKey
     */
    @Column(name="USE_KEY",length=50)
    @DcComment("状态操作人")
    public Member getUseKey();
    
    /**
     * 设置启用人
     * @param useKey
     */
    public void setUseKey(Member useKey);
    
    /**
     * 获取 状态操作人时间
     * @return useDate
     */
    @Column(name="USE_DATE")
    @Temporal(TemporalType.TIMESTAMP)
    @DcComment("状态操作时间")
    @DateTimeFormat
    public Date getUseDate();
    
    /**
     * 设置 启用时间
     * @param useDate
     */
    public void setUseDate(Date useDate);
}
